Lua utility module Type
Type - This molule contains functions that allow to check the data type of a variable.
It also contains functions that allow to check if the variable is a TEN primitive class or a LevelFuncs.
To use the functions within the scripts, the module must be called:
local Type = require("Engine.Type")
Example usage: check if a variable is of type Vec3()
local Type= require("Engine.Type") LevelFuncs.SetLaraPos = function (pos) if Type.IsVec3(pos) then Lara:SetPosition(pos) end end
You can use the not
keyword together with the functions of the Type module.
Example: checking if variable does not have a null value
LevelFuncs.AddProp = function (prop) if not Type.IsNull(prop) then LevelVars.property = prop end end
Functions
IsNumber(variable) | Check if the variable is a number. |
IsString(variable) | Check if the variable is a string. |
IsBoolean(variable) | Check if the variable is a boolean. |
IsTable(variable) | Check if the variable is a table. |
IsNull(variable) | Check if the variable has a null value. |
IsFunction(variable) | Check if the variable is a function. |
IsColor(variable) | Check if the variable is a Color. |
IsRotation(variable) | Check if the variable is a Rotation. |
IsVec2(variable) | Check if the variable is a Vec2. |
IsVec3(variable) | Check if the variable is a Vec3. |
IsTime(variable) | Check if the variable is a Time object. |
IsLevelFunc(variable) | Check if the variable is a LevelFunc. |
Functions
- IsNumber(variable)
-
Check if the variable is a number.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a number, false if it isn't a number
Usage:
--example of use local num = 255 if Type.IsNumber(num) then num = num + 1 end
- IsString(variable)
-
Check if the variable is a string.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a string, false if it isn't a string
Usage:
--example of use local str = "Hi" if Type.IsString(str) then TEN.Util.PrintLog(str .. "everyone!", Util.LogLevel.INFO) end
- IsBoolean(variable)
-
Check if the variable is a boolean.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a boolean, false if it isn't a boolean
Usage:
--example of use LevelFuncs.test = function (test) if Type.IsBoolean(test) then LevelVars.test = test else TEN.Util.PrintLog("Error!", Util.LogLevel.ERROR) end end
- IsTable(variable)
-
Check if the variable is a table.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a table, false if it isn't a table
Usage:
--example of use LevelFuncs.PairsTable = function (table) if Type.IsTable(table) then for k, v in pairs(table) do TEN.Util.PrintLog(tostring(k) .. " - " .. tostring(v), Util.LogLevel.INFO) end end end
- IsNull(variable)
-
Check if the variable has a null value.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a null, false if it isn't a null
Usage:
--example of use LevelFuncs.AddProp = function (prop) if Type.IsNull(prop) then TEN.Util.PrintLog("Error!", Util.LogLevel.ERROR) else LevelVars.property = prop end end
- IsFunction(variable)
-
Check if the variable is a function.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a function, false if it isn't a function
Usage:
--example of use LevelFuncs.RunFunc = function (func) if Type.IsFunction(func) then func() end end
- IsColor(variable)
-
Check if the variable is a Color.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a color, false if it isn't a color
Usage:
--example of use LevelFuncs.SetColor = function(color) if Type.IsColor(color) then string:SetColor(color) end end
- IsRotation(variable)
-
Check if the variable is a Rotation.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a rotation, false if it isn't a rotation
Usage:
--example of use LevelFuncs.SetRotation = function (rot) if Type.IsRotation(rot) then Lara:SetRotation(rot) end end
- IsVec2(variable)
-
Check if the variable is a Vec2.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a vec2, false if it isn't a vec2
Usage:
--example of use LevelFuncs.SetSpritePos = function (pos) if Type.IsVec2(pos) then sprite:SetPosition(pos) end end
- IsVec3(variable)
-
Check if the variable is a Vec3.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a vec3, false if it isn't a vec3
Usage:
--example of use LevelFuncs.SetLaraPos = function (pos) if Type.IsVec3(pos) then Lara:SetPosition(pos) end end
- IsTime(variable)
-
Check if the variable is a Time object.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a Time object, false if it isn't a Time object
Usage:
--example of use LevelFuncs.IncreaseTime = function (time) if Type.IsTime(time) then time + 1 end end
- IsLevelFunc(variable)
-
Check if the variable is a LevelFunc.
Parameters:
- variable variable to be check
Returns:
-
boolean
true if the variable is a LevelFunc, false if it isn't a IsLevelFunc
Usage:
--example of use LevelFuncs.SetCallback = function (func) if Type.IsFunction(func) then TEN.Logic.AddCallback(TEN.Logic.CallbackPoint.PRELOOP, func) end end